##### SCRIPT QUE GERA A TABELA 5 #####

# 1. CARREGA PACOTES ------------------------------------------------------

library(censobr)
library(tidyverse)
library(janitor)
library(survey)
library(srvyr)
library(xlsx)

# 2. CARREGA DADOS --------------------------------------------------------

# Censo Demografico filtrado com apenas os individuos com ensino superior completo (filtro abaixo)

# c10_sup <- censo10 %>% filter(V6400 == 4)

c10_sup <- readRDS("c10_sup.rds")

#' Variaveis utilizadas:
#' V6036 = IDADE CALCULADA EM ANOS
#' V6352 = CURSO SUPERIOR DE GRADUAÇÃO 
#' V6930 = POSIÇÃO NA OCUPAÇÃO E CATEGORIA DO EMPREGO NO TRABALHO PRINCIPAL 
#' V6920 = SITUAÇÃO DE OCUPAÇÃO NA SEMANA DE REFERÊNCIA
#' V6513 = RENDIMENTO NO TRABALHO PRINCIPAL
#' V0653 = NO TRABALHO PRINCIPAL, QUANTAS HORAS TRABALHAVA HABITUALMENTE POR SEMANA

# 3. MODIFICA DADOS -------------------------------------------------------

# 3.1 Filtra quem tem entre 18 e 35 anos ----

c10_sup <- c10_sup %>% filter(V6036 > 17 & V6036 < 34)

# 3.2 Cria variavel de area de formacao ----

c10_sup <- c10_sup %>%
      mutate(area_formacao = case_when(str_detect(V6352, "^32") |
                                             str_detect(V6352, "^34") | 
                                             V6352 %in% c("313", "314") ~ "Ciências Sociais Aplicadas",
                                       str_detect(V6352, "^4") | 
                                             str_detect(V6352, "^6") ~ "CTEM",
                                       V6352 %in% c("380") ~ "Direito",
                                       str_detect(V6352, "^1") ~ "Educação",
                                       str_detect(V6352, "^5") ~ "Engenharia",
                                       str_detect(V6352, "^2") | 
                                             V6352 %in% c("310", "311", "312") ~ "Humanidades e Artes",
                                       V6352 %in% c("721") ~ "Medicina",
                                       str_detect(V6352, "^7") & 
                                             !V6352 %in% c("721") ~ "Saúde e Bem-Estar",
                                       str_detect(V6352, "^8") & 
                                             !V6352 == 85 ~ "Serviços"))

# 3.3 Recodifica posicao na ocupacao ----

c10_sup <- c10_sup %>%
      mutate(posicao_ocup = case_when(V6930 == 1 ~ "Empregado com carteira assinada",
                                      V6930 == 2 ~ "Militar e funcionário público",
                                      V6930 == 3 ~ "Empregado sem carteira assinada",
                                      V6930 == 4 ~ "Conta própria",
                                      V6930 == 5 ~ "Empregador",
                                      V6930 == 6 ~ "Não remunerado",
                                      V6930 == 7 ~ "Produção próprio consumo"
      ))

# 3.4 Recodifica situacao de ocupacao ----

c10_sup <- c10_sup %>%
      mutate(situacao_ocup = case_when(V6920 == 1 ~ "Ocupado",
                                       V6920 == 2 ~ "Não ocupado"))

# 3.5 Define desenho amostral ----

c10_da <- c10_sup %>% as_survey_design(1, weight = V0010)

# 4. GERA TABELA ----------------------------------------------------------

tab_rend_area_pos_ocup <- c10_da %>% 
      filter(!is.na(area_formacao)) %>% 
      filter(V6513 > 0) %>% 
      mutate(rendimento_hora = V6513/(V0653*4)) %>% 
      group_by(area_formacao, posicao_ocup) %>% 
      summarize(rend_hora = survey_mean(rendimento_hora, na.rm = T)) %>% 
      ungroup() %>% 
      select(-rend_hora_se) %>% 
      spread(posicao_ocup, rend_hora)

# 5. EXPORTA TABELA -------------------------------------------------------

tab_rend_area_pos_ocup %>% 
      data.frame %>% 
      xlsx::write.xlsx(., 
                       "./output/tab_rend_hora_ocup_area-1834.xlsx", 
                       sheetName = "bruto", 
                       row.names = F)
